
#include <vector>

using namespace std;


int bottomLeftToTopRight(const vector<vector<int>> &positions) {
  // 对于一个 100 x 100 的方阵来说，斜向对角线的个数是 2 * 100 - 1
  int d = 2 * 100 - 1; // 对角线的条数

  // 创建一个数组，保存每条对角线上的红花数量
  vector<int> records(d, 0);

  // 遍历所有红花位置
  for (vector<int> pos : positions) {
    int sum = pos[0] + pos[1]; // 算出这个位置的 x+y
    ++records[sum]; // 把对应位置上的红花数 + 1
  }

  // 返回 records 中的最大值
  return *max_element(records.begin(), records.end());
}


